In a computer system, the amount of memory available often determines the performance of the computer system—the higher the amount of memory available, the higher the performance. However, memory devices are also relatively costly, and can make up a substantial portion of the overall system cost.
In a system that has multiple computing nodes, such as a server system having multiple server nodes, the allocation of memory to the various computing nodes poses a challenge. Various mechanisms have been implemented or proposed to share memory resources among the multiple computing nodes. However, such sharing mechanisms often involve the use of specialized hardware or specialized software, both of which involves additional costs and implementation complexities.